import * as mongoose from 'mongoose';

/**用户模型 */
export const UserModel = new mongoose.Schema({
	nickName:{
        type:String,
        default:""
    },
    userName:{
        type:String,
        default:""
    },
    passWord:{
        type:String,
        default:"",
        select:false
    },
    userType:{
        type:String,
        default:"1",
    },
    avatarUrl:{
        type:String,
        default:""
    },
	note:{
        type:String,
        default:""
    },
    gender:{
        type:Number,
        default:0
    },
    province:{
        type:String,
        default:"",
		select:false
    },
    city:{
        type:String,
        default:"",
		select:false
    },
	ip:{
        type:String,
        default:"",
		select:false
    },
	ipProvince:{
        type:String,
        default:"未知",
		select:false
    },
	ipCity:{
        type:String,
        default:"未知",
		select:false
    },
    realName:{
        type:String,
        default:"",
		select:false
    },
    phone:{
        type:String,
        default:"",
		select:false
    },
    idCard:{
        type:String,
        default:"",
		select:false
    },
    idCardPhoto:{
        type:Object,
        default:{
            face:"",
            back:""
        },
		select:false
    },
    openId:{ //微信openid
        type:String,
        default:"",
		select:false,
		index:true
    },
    unionId:{//微信unionId
        type:String,
        default:"",
		select:false
    },
    appleId:{ //苹果登录id
        type:String,
        default:"",
		select:false
    },
	appleToken:{ //苹果登录token
        type:String,
        default:"",
		select:false
    },
	udid:{ //设备登录id
        type:String,
        default:"",
		select:false
    },
    email:{
        type:String,
        default:"",
    },
	platform:{
		type:String,
        default:"",
	},
    userSource:{ //用户来源
        type:String,
        default:"username"
    },
    finishRegister:{
        type:Boolean,
        default:false
    },
    status:{
        type:String,
        default:"0"
    },
},{
    timestamps: {
        createdAt: 'createdAt',
        updatedAt: 'updatedAt'
    },
	shardKey:{
		_id:"hashed"
	}
});
UserModel.index({ createdAt: -1});
UserModel.index({ createdAt: 1});
export interface User extends Document {
	readonly _id: string;
	/**用户昵称 */
	readonly nickName: string;
	/**登录账号 */
	readonly userName: string;
	/**用户密码 */
	readonly passWord: string;
	/**用户类型 1-普通用户 2vip用户 */
	readonly userType: string;
	/**用户头像 */
	readonly avatarUrl: string;
	/**用户个性签名 */
	readonly note: string;
	/**用户性别 0未知 1男 2女 */
	readonly gender: Number;
	/**所在省份 */
	readonly province: string;
	/**所在城市 */
	readonly city: string;
	/**ip */
	readonly ip: string;
	/**ip所在城市 */
	readonly ipCity: string;
	/**真实姓名 */
	readonly realName: string;
	/**手机号码 */
	readonly phone: string;
	/**身份证号 */
	readonly idCard: string;
	/**身份证照片 */
	readonly idCardPhoto: {
		/**正面url */
		face:string,
		/**背面url */
		back:string,
	};
	/**微信openid */
	readonly openId: string;
	/**微信unionId */
	readonly unionId: string;
	/**苹果登录id */
	readonly appleId: string;
	/**苹果登录token */
	readonly appleToken: string;
	/**设备登录id */
	readonly udid: string;
	/**所属平台 */
	readonly platform: string;
	/**用户来源 默认微信 */
	readonly userSource: string;
	/**绑定邮箱 */
	readonly email: string;
	/**状态 */
	readonly status: string;
}
